package com.network.dao;

import java.util.ArrayList;

import com.network.entity.Page;
import com.network.entity.User;
import com.network.entity.UserQryHelper;

/**
 * 用于实现用户信息的增删改操作
 * @author Ling Xiaowei
 *
 */
public interface IUserDAO {
	
	/**
	 * 保存或者更新用户信息
	 * @param user 要保存或者要更新的用户信息
	 */
	public void saveOrUpdateUser(User user);
	
	/**
	 * 删除指定用户的用户信息
	 * @param user 要删除的用户对象
	 */
	public void deleteUser(User user);
	
	/**
	 * 删除指定用户名的用户信息
	 * @param id 要删除的用户的用户名
	 */
	public void deleteUserById(String id);
	
	/**
	 * 获取指定用户名的用户信息
	 * @param id 要获取的用户的用户名
	 * @return 返回获取的用户信息
	 */
	public User getUserById(String id);
	
	
	/**
	 * 查看指定用户名是否已经存在
	 * @param id 要验证的用户名ID
	 * @return 如果用户已经存在返回true否则返回false
	 */
	public boolean isUsernameExisted(String id);
	
	/**
	 * 根据页面对象和过滤条件获取相应的用户信息记录
	 * @param p 页面对象，用于记录当前的页面信息，记录总条数 当前页数等
	 * @param helper 用户信息过滤条件
	 * @return 返回满足条件的用户信息集合
	 */
	public ArrayList<User> loadUser(Page p, UserQryHelper helper);

}
